package com.own.business.pay.core.model;

import lombok.Data;

import java.io.Serializable;

/**
 * PayOrderModel
 *
 * @author chenxueli
 * @date 2023-07-13 13:55:00
 */
@Data
public class PayOrderModel implements Serializable {

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 订单标题。
     * 注意：不可使用特殊字符，如 /，=，& 等。
     */
    private String subject;

    /**
     * 订单附加信息。
     * 如果请求时传递了该参数，将在异步通知、对账单中原样返回，同时会在商户和用户的pc账单详情中作为交易描述展示
     */
    private String body;

    /**
     * 商户订单号。
     * 由商家自定义，64个字符以内，仅支持字母、数字、下划线且需保证在商户端不重复。
     */
    private String tradeNo;

    /**
     * 建议使用time_expire字段。
     * <p>
     * 订单相对超时时间。从买家确认支付时间开始计算。
     * 该笔订单允许的最晚付款时间，逾期将关闭交易。取值范围：5m～15d。m-分钟，h-小时，d-天，1c-当天（1c-当天的情况下，无论交易何时创建，都在0点关闭）。 该参数数值不接受小数点， 如 1.5h，可转换为 90m。
     * 默认值为15d。
     * <p>
     * 注：
     * 1. 无线支付场景最小值为5m，低于5m支付超时时间按5m计算。
     * 2. time_expire和timeout_express两者只需传入一个或者都不传，如果两者都传，优先使用time_expire。
     */
    private String timeoutExpress;

    /**
     * 订单总金额。
     * 单位为分，精确到小数点后两位，取值范围：[1,10000000000] 。
     */
    private Long totalAmount;

    /**
     * 业务类型
     */
    private String businessType;

}
